2级C语言考试题目`帮帮忙啊`

来源:百度知道 编辑:UC知道 时间:2024/04/29 13:57:07
题目如下`

请编一个函数float fun(double h),函数的功能是对变量h中的值保留2位小数,并对第三位进行四舍五入(规定h中的值为正数)。
例如:h值为8.32433,则函数返回8.32;
h值为8.32533,则函数返回8.33
注意:部分源程序存在文件prog.c中。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。

求求各位大大怎么做,万分感谢呀`

#include<stdio.h>
int main()
{
char a[20]={'\0'};
float an;
float deal(char b[20]);
printf("请输入数字\n");
scanf("%s",a);
an=deal(a);
printf("%.2f\n",an);
getchar();
getchar();
}
float deal(char b[20])//用这个函数
{
int i,wh,st=0;
float an;
for(i=0;b[i]!='\0';i++)
{
if(b[i]=='.') wh=i;
}
for(i=0;i<wh;i++)
{
st=st*10+(b[i]-'0');
printf("%d\n",st);
}
i=wh+1;
if(b[i+2]-'0'>=5) b[i+1]=b[i+1]+1;
an=(b[i]-'0')*0.1 +(b[i+1]-'0')*0.01;
an=an+st;
return(an);
}

解:源程序如下:
法一:float fun ( double h )
{
long i=h*1000;
if(i%10<5)
return (i/10)/100.0;
else